home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 26.zip / BS1 part 26 / Powervisor v1.10b disk1.adf / PVDevelop / include / PV / ListBase.h < prev    next >
C/C++ Source or Header  |  1991-09-15  |  2KB  |  129 lines

  1. #ifndef PV_LISTBASE_H
  2. #define PV_LISTBASE_H TRUE
  3. /*
  4. **  $Filename: ListBase.h $
  5. **  $Release: 1.02 $
  6. **  $Revision: 37.346 $
  7. **  $Date: 15 Sep 91 $
  8. **
  9. **  Structure definitions for List Base (see 'TheWizardCorner')
  10. **
  11. **  © 1991 Jorrit Tyberghein, included with PowerVisor
  12. **        All Rights Reserved
  13. */
  14.  
  15. #ifndef PV_PVMEMORY_H
  16. #include "PVMemory.h"
  17. #endif
  18.  
  19. #ifndef EXEC_LISTS_H
  20. #include <exec/lists.h>
  21. #endif
  22.  
  23.  
  24. #define STRUCTDEF_BYTE        0
  25. #define STRUCTDEF_WORD        1
  26. #define STRUCTDEF_LONG        2
  27. #define STRUCTDEF_STRING    3
  28. #define STRUCTDEF_OBJECT    4
  29. #define STRUCTDEF_BPTR        128
  30.  
  31. #define IBCTRLBYTE_BASEROUTINE    -1
  32. #define IBCTRLBYTE_STRUCTURE    -2
  33. #define IBCTRLBYTE_ALLROUTINE    -3
  34.  
  35. #define IBCTRLBYTE_NIBBLE1    15
  36. #define IBCTRLBYTE_NIBBLE2    240
  37.  
  38. #define IBCTRLBYTE_NOTHING    0
  39. #define IBCTRLBYTE_INDIRECT    1
  40. #define IBCTRLBYTE_BPTR        2
  41.  
  42.  
  43. struct StructDef
  44.     {
  45.         APTR String;
  46.         UWORD Type;
  47.         UWORD Offset;
  48.     };
  49.  
  50. struct StructureDef
  51.     {
  52.         struct Node node;
  53.         ULONG MatchWord;    /* 'PVSD' */
  54.         PVBLOCK Strings;
  55.         PVBLOCK StructureDefinition;
  56.         UWORD Length;
  57.     };
  58.  
  59. struct InfoBlock
  60.     {
  61.         ULONG PromptString;
  62.         UBYTE ItemNumber;
  63.         UBYTE ControlByte;
  64.         union
  65.             {
  66.                 APTR Routine;
  67.                 APTR Base;
  68.             } GoToBase;
  69.         UWORD Offset;
  70.         union
  71.             {
  72.                 APTR Routine;
  73.                 struct StructDef *Structure;
  74.             } NextElem;
  75.         APTR HeaderString;
  76.         APTR FormatString;
  77.         ULONG ArgString;
  78.         UBYTE Null;
  79.         UBYTE UseInfoStructure;
  80.         union
  81.             {
  82.                 APTR Routine;
  83.                 struct StructDef *Structure;
  84.             } Info;
  85.         APTR PrintOneLineRout;
  86.         UWORD NameOffset;
  87.     };
  88.  
  89. struct ListBase
  90.     {
  91.         APTR OldWindowPtr;
  92.         ULONG PromptString;
  93.         UWORD CurrentListNum;
  94.         UWORD pad0;
  95.         struct List StructureDefs;
  96.         struct InfoBlock IBExec;
  97.         struct InfoBlock IBIntb;
  98.         struct InfoBlock IBTask;
  99.         struct InfoBlock IBLibs;
  100.         struct InfoBlock IBDevs;
  101.         struct InfoBlock IBReso;
  102.         struct InfoBlock IBMemr;
  103.         struct InfoBlock IBIntr;
  104.         struct InfoBlock IBPort;
  105.         struct InfoBlock IBWins;
  106.         struct InfoBlock IBScrs;
  107.         struct InfoBlock IBFont;
  108.         struct InfoBlock IBDosd;
  109.         struct InfoBlock IBFunc;
  110.         struct InfoBlock IBSema;
  111.         struct InfoBlock IBResm;
  112.         struct InfoBlock IBFils;
  113.         struct InfoBlock IBLock;
  114.         struct InfoBlock IBIHan;
  115.         struct InfoBlock IBFDFi;
  116.         struct InfoBlock IBAttc;
  117.         struct InfoBlock IBCrsh;
  118.         struct InfoBlock IBGraf;
  119.         struct InfoBlock IBDbug;
  120.         struct InfoBlock IBStru;
  121.         struct InfoBlock IBPubs;    /* */
  122.         struct InfoBlock IBMoni;    /* */
  123.         struct InfoBlock IBConf;
  124.         struct InfoBlock IBLWin;
  125.         struct InfoBlock IBPWin;
  126.     };
  127.  
  128. #endif
  129.